#include<iostream>
#include<cstring>
#include<vector>
#include<cstdio>
using namespace std;
const int maxn =105;
int n,m,d[maxn];
bool map[maxn][maxn];


int main(){
	cin>>n>>m;
	int x,y;
	for(int i=1;i<=m;i++){
		cin>>x>>y;
		map[x][y]=true;
	}
	
	for(int k=1;k<=n;k++){
		for(int i=1;i<=n;i++){
			for(int j=1;j<=n;j++){
				map[i][j]=map[i][j]||(map[i][k]&&map[k][j]);
			}
		}
	}
	
	int ans=0;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(i==j)continue;
			if(map[i][j]){
				d[i]++;
				d[j]++;
			}
		}
	}
	for(int i=1;i<=n;i++){
		if(d[i]==n-1)ans++;
	}
	cout<<ans<<endl;
}
